SEARCH KEYWORD -- file transfer
Introducing the for-if anti-pattern
Over the years, I've seen a bunch of coding anti-patterns. I figured maybe I'll share a few. Today, I'll introduce what I'm calling the for-if anti-pattern, also known as "We'll sell you the whole seat, but you'll only need the edge." This is a special case of the for-case anti-pattern, where all but one of the cases is null. for (int i = 0; i < 100; i++) { if (i == 42) { do_something(i); } } This can naturally be simplified to do_something(42); The for-if anti-pattern arises in ma...
Programming,Anti-pattern,for-if,efficiency 2012-02-02 10:18:15
Do you have this kind of comments in your source code?
Writing runnable code is the essential skill of a programmer, writing understandable comment is also a skill a programmer should acquire. There is some famous saying that bad comment is worth than no comment. Usually your code will be maintained by other people, if you provide them some difficult to understand or misguided comments, this will be nightmare to them. While at some other time, programmers may put some funny comments in their codes which may make others laugh. Today we...
WireGuard VPN Troubleshooting
When you are working as a network/cluster admin for you team to config the WireGuard VPN for other members, you may meet some of the problems below and these are the solution you can try to fix them. ----------------------------------------------------------------------------------------------------------- Problem [1]: The WireGuard handshake request send from the client can be received from the server but the server's response was blocked at some where so the client can not receive serv...
WIREGUARD,VPN,TROUBLESHOOTING 2021-12-14 09:17:46
How to optimize MySQL insert statement
For a big data system, one problem is the data access efficiency, one more problem is that the data insertion is very slow. We had a service system, the data loading process would take 4-5 hours. This time consuming operation is risky since if the program is interrupted during the loading process, it might be rerun, this will be troublesome. So it's necessary to improve the insertion efficiency for big data systems. Here we provide two optimization suggestions. 1. Combine multiple insert stateme...
MySQL,insert,optimization 2012-10-24 22:03:13
Using keytool to create certificate chain
JDK provides a command line tool -- keytool to handle key and certificate generation. This tool has a set of options which can be used to generate keys, create certificates, import keys, install certificate and export certificates etc. In this tutorial, we will show how to create certificate chain using keytool. If you want to understand how to create certificate chain programmably, please refer to Generate certificate in Java -- Certificate chain. To begin, we first generate a key pair whi...
JAVA,KEYTOOL,CERTIFICATE CHAIN,CERTIFICATE 2015-12-17 07:09:33
Understanding PGO in GoLang 1.20
Background The Go 1.20 version was officially released in February 2023, it introduced the PGO(Profile Guided Optimization) mechanism. The basic principle of PGO can be divided into the following two steps: First, profiling is performed on the program to collect data about the program's runtime and generate a profiling file. When compiling the program, enable the PGO option, and the compiler will optimize the program's performance based on the content in the .pgo file. When compiling a program...
Fix 'this authentication plugin is not supported' issue while using Go to connect MySQL 8
MySQL 8 has changed its default authentication plugin from mysql_native_password to caching_sha2_password to improve its security. However many third party libraries seem act slowly to catch up with this change. This causes some compatible issues with their connection to MySQL. One of the issues is seen in Go libraries while it's trying to connect to MySQL 8. The specific error has been observed is "this authentication plugin is not supported". The root cause of this issue is that the go-sq...
MYSQL,GO,MYSQL 8,AUTHENTICATION PLUGIN 2018-07-11 08:55:02
Convert JKS to BKS using keytool
There are lots of questions(question 1, question 2) on Stackoverflow about how to convert JKS keystore to BKS keystore(a keystore format provided by BouncyCastle) using Java keytool. The reason why this conversion gets lots of questions is that BKS is not a keystore format supported by Java SE, it's a third party keystore format. To convert JSK to BKS, the BKS provider has to be downloaded first. And a few more options needs to be added when running the keytool command. The typical co...
PHP to get long running process progress dynamically
Frequently in web applications, we may have a request to the back end system which may trigger a long running process such as searching huge amount of data or a long running database process. Then the front end webpage may hang and wait for the process to be finished. During this process, if we can provide the user some information about the progress of the back end process, it may improve user experience. Unfortunately, in web applications, this seems not an easy task because web scripting lang...
AJAX,PHP,progress,long process,demo 2012-06-04 07:29:37
A simple tutorial on Linux nohup command
In our daily work, there might be need to run some important program for hours or even days without being abruptly terminated. In such case, we may want to run the program with command nohup. nohup is the abbreviation of no hangup, i.e, don't hang up or terminate the process. This command will tell the process to ignore the system HUP signal. The HUP signal will be emitted when the terminal is exited or disconnected. Normally process will abort its execution when receiving this signal. Bas...
RECENT
- Tips for Socializing With Friends During College
- Proximity Cards Do More Than Just Open Doors
- How to choose quality painted auto parts
- Oval engagement rings from MoonOcean: Elegance of form and individual approach
- Hologres vs AWS Redshift
- GoLand connect to Hologres
- A journey to investigate a goroutine leakage case
- Understanding Slice Behavior in Go
- Breaking Barriers: How 3D Printing is Democratizing Product Development
- The Power of Efficiency: 10 Practical Energy-Saving Tips for Tech Startups
- more>>